package app.android.com.wuandroidapp.playair;

import java.util.ArrayList;

import android.content.Context;
import android.graphics.Canvas;
import android.view.MotionEvent;
import android.view.View;

import app.android.com.wuandroidapp.R;


public class Myview extends View {
	MyAir mair;
	ArrayList<RobotAir>  arr = new ArrayList<RobotAir>();
	//自己的子弹
	ArrayList<MyBullet> bullets=new ArrayList<MyBullet>();
	//敌机的子弹
	ArrayList<MyBullet> bullets1=new ArrayList<MyBullet>();

	// 存放爆炸效果的队列
	ArrayList<Explode> explodes = new ArrayList<Explode>();


	boolean isInit = true;
	Explode ex;
	int num=0;
	RobotAir air ;
	Context context;

	public Myview(Context context) {

		super(context);
		this.context=context;


		//初始化自己
		mair=new MyAir(context, R.mipmap.feiji1);

		for(int i=0;i<5;i++){
			air=new RobotAir(context, R.mipmap.feiji2);
			air.init2(this.getWidth(), this.getHeight());
			arr.add(air);
		}
	}

	public void createRobotAir(){

		for(int i=0;i<3;i++){
			air=new RobotAir(context, R.mipmap.feiji2);
			air.init2(this.getWidth(), this.getHeight());
			arr.add(air);
		}



	}

	@Override
	protected void onDraw(Canvas canvas) {

		super.onDraw(canvas);
		num++;

		//绘制自己
		mair.draw(canvas);


		if(isInit){
			for(RobotAir air:arr){

				air.init2(this.getWidth(), this.getHeight());

			}

			//初始化自己的位置
			mair.init(this.getWidth(), this.getHeight());
			isInit=false;
		}


		//初始化自己子弹
		if(num%5==0){
			MyBullet myBullet=mair.myBullet();
			bullets.add(myBullet);
		}


		//绘制自己的子弹
		for(int i=0;i<bullets.size();i++){
			MyBullet	myBullet=bullets.get(i);
			if(!myBullet.isLive){
				bullets.remove(myBullet);
			}else{
				myBullet.draw(canvas);
			}
		}
		//绘制敌机的子弹
		for(int i=0;i<bullets1.size();i++){
			MyBullet myBullet=bullets1.get(i);
			if(!myBullet.isLive){
				bullets1.remove(myBullet);
			}else{
				myBullet.draw(canvas);
			}
		}

		//更新自己子弹
		for(int i=0;i<bullets.size();i++){
			MyBullet	myBullet=bullets.get(i);
			myBullet.move();
		}

		//更新敌机子弹
		for(int i=0;i<bullets1.size();i++){
			MyBullet	myBullet=bullets1.get(i);
			myBullet.move();
		}


		// 绘制敌机
		for (RobotAir air : arr) {
			if (!air.isLive) {
				arr.remove(air);
			}else{
				air.draw(canvas);
				//初始化敌机的子弹
				if(num%30==0){
					MyBullet myBullet1=air.myBullet();
					bullets1.add(myBullet1);
				}
			}
		}


		// 更新位置
		for (RobotAir air : arr) {
			air.move();
		}



		//子弹与敌机碰撞
		for(int i=0;i<arr.size();i++){
			air=	arr.get(i);
			for(int j=0;j<bullets.size();j++){
				MyBullet bullet= bullets.get(j);
				boolean b1=	air.getBound().intersect(bullet.getBound());
				if(b1){

					arr.remove(air);
					bullets.remove(bullet);

					air.isLive=false;
					bullet.isLive=false;

					//初始化爆炸
					ex=new Explode(context, R.mipmap.explode, air.x+air.width/2,air.y+air.height/2);
					explodes.add(ex);
				}
			}


		}


		//敌机与飞机碰撞
		for(int i=0;i<arr.size();i++){
			air=	arr.get(i);
			boolean b1=	air.getBound().intersect(mair.getBound());
			if(b1){

				arr.remove(air);
				air.isLive=false;
				//初始化爆炸
				ex=new Explode(context, R.mipmap.explode, air.x+air.width/2,
						air.y+air.height/2);
				explodes.add(ex);

			}
		}


		//绘制爆炸效果
		for(Explode e:explodes){
			e.draw(canvas);
		}





	}
	boolean b=false;
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		// TODO Auto-generated method stub
		int action =event.getAction();
		switch (action) {
			case MotionEvent.ACTION_DOWN:
				float x=event.getX();
				float y=event.getY();
				if(x>mair.x&&x<mair.x+mair.width&&y>mair.y&&y<mair.height+mair.y){
					b=true;
				}

				break;
			case MotionEvent.ACTION_MOVE:
				float	x1=event.getX();
				float	y1=event.getY();
				if(b){
					mair.move(x1, y1);

				}
				break;


			case MotionEvent.ACTION_UP:


				b=false;
				break;
			default:
				break;
		}

//	float x=event.getX();
//	float y=event.getY();
//	mair.move(x, y);
		return true;
	}
}